iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

前言

了解了加解密的基本流程後,今天就讓我們來看看古人是如何對訊息進行加解密的。透過了解古典密碼學的演進與破綻,我們能更直觀地理解現代密碼學是為了拯救哪些安全漏洞而誕生的。

凱薩密碼 (Caesar Cipher)

凱薩密碼源自古羅馬的凱薩大帝(Julius Caesar),他在高盧戰爭期間以此方式加密傳遞軍情,後人便以他的名字為這種加密法命名。

凱薩密碼的原理非常簡單:將每個字母依照字母順序往後推移 n 個位置。這個位移量 n 就是加解密的關鍵變數,也就是金鑰 (Key)。以下圖範例來說,金鑰就是 3(即 A 變成 DB 變成 E):
https://ithelp.ithome.com.tw/upload/images/20260918/20128084aUCLmaEiX3.png

替換密碼 (Substitution Cipher)

替換密碼是凱薩密碼的進階版。它不再固定往後推移相同位數,而是直接定義一張「文字隨機對應表」來進行替換。這張對應表就是我們的金鑰:
https://ithelp.ithome.com.tw/upload/images/20260918/20128084Z90RxUzf8b.png

我們的密碼安全嗎?(金鑰空間與破解)

密碼學在評估安全性時,最核心的概念之一就是「金鑰空間 (Key Space)」——也就是所有可能金鑰的總數量。

1. 凱薩密碼的盲點:暴力破解 (Brute-force Attack)
以英文字母 26 個字來說,最多只能往後推移 25 種可能。只要攻擊者知道我們使用的是凱薩加密,用電腦(甚至是用人工)將 25 種全部試一遍,不用幾秒鐘就能還原明文。這種將所有可能金鑰試一遍的手段,就是經典的暴力破解

2. 替換密碼的偽安全:龐大的金鑰空間$
替換密碼的文字對應表共有 26!(26 的階乘)種組合,大約是 4.03 x 10^26 種可能。假設一台電腦一秒鐘能嘗試 1 億個金鑰,理論上需要花上 1,280 億年才能全部試完!

那替換密碼就絕對安全了嗎?並沒有!雖然它能防禦暴力破解,但因為英文文章中字母出現的頻率有固定規律(如字母 ET 出現頻率最高),攻擊者可以用「頻率分析法 (Frequency Analysis)」輕鬆破解。

密碼學的兩種安全定義

從古典密碼學的破綻中,密碼學家歸納出了兩種安全的定義:

  • 計算上的安全 (Computational Security)
    加密演算法在理論上有可能被破解,但所需的計算量龐大到就算集結全世界的超級電腦算上幾百年也算不出來。我們現在使用的現代密碼學就屬於這一種。
  • 絕對安全的密碼 (Unconditional Security / Perfect Secrecy)
    在數學理論上完全無法被破解。最具代表性的就是一次性密碼本 (One-Time Pad, OTP)——使用與明文等長的真亂數作為金鑰,且金鑰使用一次後即丟棄、絕不重複

Reference

  • 世界第一簡單密碼學 - 三谷政昭、佐藤伸一

上一篇
Day02 - 加解密流程與密碼學基本用語
下一篇
Day04 - 現代密碼學
系列文
我是Java工程師,關於密碼學我想懂的不多8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言